<?php

namespace app\common\model\post;

use think\Model;

class Post extends Model
{
    //帖子数据表
    protected $table = "pre_post";

    //指定一个自动设置的时间字段
    //开启自动写入
    protected $autoWriteTimestamp = true;

    //设置字段的名字
    protected $createTime = 'createtime'; //插入的时候设置的字段名

    //禁止 写入的时间字段
    protected $updateTime = false;

    // 软删除的字段
    protected $deleteTime = 'deletetime';

    //如果想要在查询的时候显示出，获取器自定义的字段
    protected $append = [
        'comment',
    ];

    //关联用户表模型
    //帖子 : 用户 n:1
    //帖子 : 分类 n:1
    public function user()
    {
        return $this->belongsTo('app\common\model\user\User', 'userid', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    //关联分类表模型
    public function cate()
    {
        return $this->belongsTo('app\common\model\Cate', 'cateid', 'id', [], 'LEFT')->setEagerlyType(0);
    }

    //获取帖子的回复数量
    public function getCommentAttr($value, $data)
    {
        $count = model('Post.Comment')->where('postid', $data['id'])->count();
        return $count;
    }

    //附加功能
    public function state()
    {
        return [
            '1' => '置顶',
            '2' => '精华',
            '3' => '热门',
        ];
    }
}
